Конец «бесплатного обеда»
На протяжении десятилетий разработчики наслаждались «последовательным пределом» — эпохой, когда Масштабирование Деннарда гарантировало, что каждый новый поколение чипов обеспечивало более высокие тактовые частоты. Но мы достигли стены мощности. Производительность больше не зависит от частоты; она зависит от параллелизма. Чтобы двигаться вперёд, нам необходимо использовать компьютерное мышление для моста между абстрактными численными методами и современными моделями параллельного выполнения.
Напряжение между точностью и производительностью
Переход с задачи домена (например, молекулярная динамика) с многопроцессорной платформы на устройства CUDA это больше, чем изменение синтаксиса; это смена парадигмы разложения задачи. Когда мы параллелизуем, мы часто меняем порядок операций. Поскольку арифметика с плавающей запятой не является ассоциативной, мы сталкиваемся с компромиссом: точность с плавающей запятой против точности вычислений. Результат параллельного вычисления может быть математически корректным, но численно отличаться от своего последовательного аналога.